#ifndef AUX_FUNCS_H_
#define AUX_FUNCS_H_

#include "../common.h"

#include <cmath>
#include <iostream>

namespace physicsworks {

namespace math {

template<class T> inline bool equal(T a, T b)
{
	return std::abs(a - b) <= real_traits<T>::epsilon ? true : false;
}

template<class T> inline bool less(T a, T b)
{
	return a < b - real_traits<T>::epsilon ? true : false;
}

template<class T> inline bool greater(T a, T b)
{
	return a - real_traits<T>::epsilon > b ? true : false;
}

template<class T> inline void minmax(T& min, T& max, T a, T b)
{
	if (a > b) {
		min = b;
		max = a;
	} else {
		min = a;
		max = b;
	}
}

}

}

#endif /*AUX_FUNCS_H_*/
